<template>
  <div class="member-task-operation">
    <operation-title
      title="会员任务"
      :icon="TitleIcon"
    />
    <div class="divider"></div>
    <div class="func">
      <p class="attr">标题</p>
      <div class="adjust-item">
        <span>文字</span>
        <el-input style="width:300px" v-model="config.pageConfig.taskTitle"></el-input>
      </div>
      <div class="adjust-item">
        <span>颜色</span>
        <el-color-picker v-model="config.pageConfig.titleColor" />
        <span class="color-value">{{ config.pageConfig.titleColor }}</span>
      </div>
      <div class="adjust-item">
        <span>字号</span>
        <el-slider v-model="config.pageConfig.titleSize" :min="0" :max="50" show-input size="small" />px
      </div>
    </div>

    <div class="divider"></div>
    <div class="func">
      <p class="attr">选择颜色</p>
      <div class="adjust-item">
        <span>组件背景</span>
        <el-radio-group v-model="config.pageConfig.cptType">
          <el-radio label="1">背景色</el-radio>
          <el-radio label="2">背景图</el-radio>
        </el-radio-group>
      </div>
      <div class="adjust-item" v-show="config.pageConfig.cptType == 1">
        <span></span>
        <el-color-picker v-model="config.pageConfig.bgColor" />
        <span class="color-value">{{ config.pageConfig.bgColor }}</span>
      </div>
      <div class="add-item-input" v-show="config.pageConfig.cptType == 2">
        <p></p>
        <h4>建议图片宽度355px，高度120px</h4>
        <div class="upload-img" v-if="config.pageConfig.bgImg">
          <el-image style="width: 100%; height: 100%" :src="config.pageConfig.bgImg" fit="contain"></el-image>
          <div class="upload-img_cover">
            <Upload :model-value="fileList" file-path="act/" :limit="999" :show-file-list="false"
              @success="uploadSuccess">
              <el-button size="small" @click="currentType = 'bgImg'">替换</el-button>
            </Upload>
          </div>
        </div>
        <Upload v-else v-model="config.pageConfig.bgImg" file-path="act/" list-type="picture-card">
          <el-icon>
            <Plus />
          </el-icon>
        </Upload>
      </div>
      <div class="adjust-item">
        <span>任务背景色</span>
        <el-color-picker v-model="config.pageConfig.taskBgColor" />
        <span class="color-value">{{ config.pageConfig.taskBgColor }}</span>
      </div>
      <div class="adjust-item">
        <span>任务名称颜色</span>
        <el-color-picker v-model="config.pageConfig.taskNameBgColor" />
        <span class="color-value">{{ config.pageConfig.taskNameBgColor }}</span>
      </div>
      <div class="adjust-item">
        <span>任务描述颜色</span>
        <el-color-picker v-model="config.pageConfig.taskDescBgColor" />
        <span class="color-value">{{ config.pageConfig.taskDescBgColor }}</span>
      </div>
      <div class="adjust-item">
        <span>成长值颜色</span>
        <el-color-picker v-model="config.pageConfig.grouthValueColor" />
        <span class="color-value">{{ config.pageConfig.grouthValueColor }}</span>
      </div>
    </div>

    <div class="divider"></div>
    <div class="func">
      <p class="attr">任务按钮</p>
      <div class="adjust-item">
        <span>去完成</span>
        <div class="add-item-input">
          <div class="upload-img" v-if="config.pageConfig.finishBtnImg">
            <el-image style="width: 100%; height: 100%" :src="config.pageConfig.finishBtnImg" fit="contain"></el-image>
            <div class="upload-img_cover">
              <Upload :model-value="fileList" file-path="act/" :limit="999" :show-file-list="false"
                @success="uploadSuccess">
                <el-button size="small" @click="currentType = 'bgImg'">替换</el-button>
              </Upload>
            </div>
          </div>
          <Upload v-else v-model="config.pageConfig.finishBtnImg" file-path="act/" list-type="picture-card">
            <el-icon>
              <Plus />
            </el-icon>
          </Upload>

          <span style="width: auto">建议尺寸350*120</span>
        </div>
      </div>
      <div class="adjust-item">
        <span>已完成</span>
        <div class="add-item-input">
          <div class="upload-img" v-if="config.pageConfig.finishedBtnImg">
            <el-image style="width: 100%; height: 100%" :src="config.pageConfig.finishedBtnImg" fit="contain"></el-image>
            <div class="upload-img_cover">
              <Upload :model-value="fileList" file-path="act/" :limit="999" :show-file-list="false"
                @success="uploadSuccess">
                <el-button size="small" @click="currentType = 'bgImg'">替换</el-button>
              </Upload>
            </div>
          </div>
          <Upload v-else v-model="config.pageConfig.finishedBtnImg" file-path="act/" list-type="picture-card">
            <el-icon>
              <Plus />
            </el-icon>
          </Upload>

          <span style="width: auto">建议尺寸350*120</span>
        </div>
      </div>

    </div>

    <div class="divider"></div>
    <div class="func">
      <p class="attr">边距</p>
      <div class="adjust-item">
        <span>任务间距</span>
        <el-slider v-model="config.pageConfig.taskSpace" :min="0" :max="50" show-input size="small" />px
      </div>
      <div class="adjust-item">
        <span>上边距</span>
        <el-slider v-model="config.pageConfig.marginTop" :min="0" :max="50" show-input size="small" />px
      </div>
      <div class="adjust-item">
        <span>下边距</span>
        <el-slider v-model="config.pageConfig.marginBottom" :min="0" :max="50" show-input size="small" />px
      </div>
      <div class="adjust-item">
        <span>左右边距</span>
        <el-slider v-model="config.pageConfig.margin" :min="0" :max="50" show-input size="small" />px
      </div>
    </div>
    <div class="divider"></div>
    <div class="func">
      <p class="attr">圆角设置</p>
      <div class="adjust-item">
        <span>上圆角</span>
        <el-slider :min="0" :max="20" v-model="config.pageConfig.radiusTop" show-input size="small" />px
      </div>
      <div class="adjust-item">
        <span>下圆角</span>
        <el-slider :min="0" :max="20" v-model="config.pageConfig.radiusBottom" show-input size="small" />px
      </div>
    </div>

  </div>
</template>

<script lang="ts">
export default {
  name: "MemberTaskOperation",

};
</script>

<script setup lang="ts">
import TitleIcon from "@/assets/app/icon/membertask.png";
import OperationTitle
  from "@/views/activity/actApp/components/default/operationComponents/operationTitle/OperationTitle.vue";

const config = defineProps({
  pageConfig: {
    type: Object,
    default: {
      taskTitle: "",//标题
      titleColor: '#FFFFFF',//标题颜色
      titleSize: 20,
      cptType: "2", // 组件背景类型
      bgColor: "#FFFFFF",//背景色
      bgImg: "", // 背景图
      taskBgColor: "#FFFFFF",//任务背景色
      taskNameBgColor: "#FFFFFF",//任务名称背景色
      taskDescBgColor: "#FFFFFF",//任务描述背景色
      grouthValueColor: "#FFFFFF",//成长值颜色
      finishBtnImg: '',//去完成按钮图
      finishedBtnImg: "", //已完成按钮图

      taskSpace: 10,
      marginTop: 10,
      marginBottom: 10,
      margin: 10,
      paddingTop: 16,
      paddingLeft: 24,
      paddingRight: 12,
      radiusTop: 8,
      radiusBottom: 8,
    },
  },
});

</script>
<style lang="scss" scoped>
.member-task-operation {
  .title {
    padding: 8px 23px;
    overflow: hidden;
    border-bottom: 5px solid #f6f7f9;
    display: flex;
    position: relative;
    height: 50px;
    box-sizing: border-box;

    img {
      position: absolute;
      left: 0;
      top: -5px;
    }

    h5 {
      font-size: 16px;
      font-weight: 700;
      position: absolute;
      left: 70px;
      top: 0;
      line-height: 50px;
    }
  }

  .func {
    border-bottom: 5px solid #f6f7f9;
    padding: 20px 16px;
    font-size: 16px;

    .color-value {
      display: inline-block;
      width: 200px;
      text-align: left;
      margin-left: 5px;
    }

    .attr {
      line-height: 1;
      color: #47565d;
      font-weight: bolder;
      margin-bottom: 20px;
    }

    ul.common-ul {
      list-style: none;
      display: flex;
      align-items: center;
      justify-content: center;

      li {
        flex: 1;
        height: 30px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 4px 0 0 4px;
        border: 2px solid #ededed;
        border-collapse: collapse;

        &.active {
          border: 2px solid #fb6638;
        }

        img {
          max-width: 100% !important;
          max-height: 100% !important;
        }
      }
    }

    h4 {
      position: relative;
      padding: 8px 16px 8px 16px;
      border-radius: 6px;
      color: red;
      font-size: 16px;
      font-weight: 600;
      line-height: 22px;
      margin-bottom: 10px;
      border: 1px solid #d8e8fc;
      background-color: #e5f0fe;
      width: 170px;
      margin-right: 10px;
      margin-top: 10px;
    }

    div.adjust-item {
      display: flex;
      align-items: center;
      margin-top: 3px;
      margin-bottom: 10px;

      span {
        width: 80px;
        text-align: right;
        margin-right: 15px;
        color: #666;
      }

      :deep(.el-slider) {
        width: 240px;
        margin-right: 3px;
        margin-left: 15px;
      }

      :deep(.el-slider__runway.show-input) {
        margin-right: 15px;
      }

      :deep(.el-input-number) {
        width: 100px;
        background: #f4f3f7;
        border: 1px solid #f4f3f7;
      }

      .style-btn {
        width: 240px;
        height: 36px;
        font-size: 12px;
        line-height: 36px;
        text-align: center;
        background-color: #001E70;
        color: #fff;
        margin-right: 5px;
        cursor: pointer;
      }

      .style-word {
        font-size: 12px;
      }
    }


  }

  .add-item-input {
    display: flex;
    align-items: center;
    margin-bottom: 20px;

    >p {
      width: 77px;
      text-align: right;
      margin-right: 8px;
    }

    .upload-img {
      width: 62px;
      height: 62px;
      margin-right: 10px;
      position: relative;

      :deep(.el-image) {
        width: 62px;
        height: 62px;
      }

      &:hover {
        .upload-img_cover {
          opacity: 1;
        }
      }

      .upload-img_cover {
        opacity: 0;
        position: absolute;
        transition: all 0.3s ease;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.7);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: space-evenly;
      }
    }

    :deep(.el-upload-list) {
      width: 62px;
      height: 62px;
      margin-right: 10px;
    }

    :deep(.el-upload--picture-card) {
      width: 62px;
      height: 62px;
    }

    // img {
    //   width: 40px;
    //   height: 40px;
    // }
    :deep(.el-color-picker) {
      margin-right: 10px;
    }


  }
}
</style>
